package com.cskaoyan.util;

import com.cskaoyan.bean.BaseRespVo;
import com.cskaoyan.exception.CustomValidationException;
import org.springframework.validation.BindingResult;
import org.springframework.validation.FieldError;

/**
 * @author stone
 * @date 2021/11/25 10:01
 */
public class ValidationUtil {

    public static BaseRespVo valid(BindingResult bindingResult) {
        //成员变量错误 → 请求参数的错误
        FieldError fieldError = bindingResult.getFieldError();

        //拒绝值，也就是你因为传入了什么值导致了校验失败
        Object rejectedValue = fieldError.getRejectedValue();
        //成员变量名 → 请求参数名
        String field = fieldError.getField();
        String defaultMessage = fieldError.getDefaultMessage();
        String message = "请求参数" + field + "因为传入了值"
                + rejectedValue + "导致校验失败：" + defaultMessage;
        return BaseRespVo.paramError(message);
    }
    public static BaseRespVo valid2(BindingResult bindingResult) throws CustomValidationException {
        //成员变量错误 → 请求参数的错误
        FieldError fieldError = bindingResult.getFieldError();
        //拒绝值，也就是你因为传入了什么值导致了校验失败
        Object rejectedValue = fieldError.getRejectedValue();
        //成员变量名 → 请求参数名
        String field = fieldError.getField();
        String defaultMessage = fieldError.getDefaultMessage();
        String message = "请求参数" + field + "因为传入了值"
                + rejectedValue + "导致校验失败：" + defaultMessage;
        throw new CustomValidationException(message);
    }
}
